home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Disc to the Future 2
/
Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin
/
MAC
/
THINKC
/
3_0
/
DOUBLEDE
/
CLIPBOAR.C
< prev
next >
Wrap
C/C++ Source or Header
|
1988-07-27
|
2KB
|
107 lines
#include "shell.h"
initscrap()
{
PScrapStuff our_scrap;
our_scrap = InfoScrap();
scrap_check = our_scrap->scrapCount;
}
getourscrap()
{
long scrpSz,offset;
offset = LoadScrap();
initscrap();
scrap_contents = NewHandle(0);
scrpSz = GetScrap(scrap_contents,'PICT',&offset);
if(scrpSz>0){
scrap_size = scrpSz;
scrap_type = (long)'PICT';
}
else{
scrpSz = GetScrap(scrap_contents,'TEXT',&offset);
if (scrpSz>0){
scrap_size = scrpSz;
scrap_type = (long)'TEXT';
}
}
}
changedscrap()
{
PScrapStuff our_scrap;
GrafPtr tempPort;
our_scrap = InfoScrap();
if (our_scrap->scrapCount != scrap_check){
scrap_check = our_scrap->scrapCount;
DisposHandle(scrap_contents);
getourscrap();
GetPort(&tempPort);
SetPort(clip_window);
InvalRect(&clip_window->portRect);
SetPort(tempPort);
}
}
showclipwindow()
{
WindowPeek wRec;
wRec = (WindowPeek)clip_window;
if (wRec->visible){
HideWindow(clip_window);
SetItem(EditMenu,ClipItem,"\pShow Clipboard");
}
else{
ShowWindow(clip_window);
SelectWindow(clip_window);
SetItem(EditMenu,ClipItem,"\pHide Clipboard");
}
}
updateclipboard()
{
BeginUpdate(clip_window);
EraseRect(&clip_window->portRect);
DrawGrowIcon(clip_window);
drawscrap();
EndUpdate(clip_window);
}
drawscrap()
{
GrafPtr tempPort;
Rect scrap_rect;
Rect picRect;
long stype;
SetCursor(*(CursHandle)GetCursor(watchCursor));
GetPort(&tempPort);
SetPort(clip_window);
scrap_rect = clip_window->portRect;
scrap_rect.right -= 15;
scrap_rect.bottom -= 15;
ClipRect(&scrap_rect);
if (scrap_type == (long)'PICT'){
picRect = (**(PicHandle)scrap_contents).picFrame;
OffsetRect(&picRect,-picRect.left+3,-picRect.top+3);
DrawPicture((PicHandle)scrap_contents,&picRect);
}
if (scrap_type == (long)'TEXT'){
InsetRect(&scrap_rect,4,0);
HLock(scrap_contents);
TextBox(*scrap_contents,GetHandleSize(scrap_contents),&scrap_rect,teJustLeft);
HUnlock(scrap_contents);
}
SetRect(&scrap_rect,-32000,-32000,32000,32000);
ClipRect(&scrap_rect);
SetPort(tempPort);
InitCursor();
}